package org.runecore.rs2.net.codec;

/**
 * RuneCore
 * Sep 24, 2011
 * @author Harry Andreas<Harry@RuneCore.org>
 */
public abstract class AbstractGameRevision {
	
	/**
	 * An <code>Integer</code> of the revision 
	 * @return <code>Integer</code> Revision number
	 */
	public abstract int getRevision();
	
	/**
	 * An <code>Integer</code> array
	 * of packet sizes
	 * @return The packet sizes
	 */
	public abstract int[] getPacketSizes();
	
	/**
	 * A <code>String</code> of the <code>AbstractGameRevision</code>
	 * description
	 * @return The description
	 */
	public abstract String getDescription();
	
	/**
	 * A <code>AbstractPacketDecoder</code> for
	 * the game revision
	 * @return The Packet Decoder
	 */
	public abstract AbstractPacketDecoder getPacketDecoder();
	
	/**
	 * A <code>AbstractProcotolDecoder</code> for
	 * the game revision
	 * @return A <code>AbstractProtocolDecoder</code>
	 */
	public abstract AbstractProtocolDecoder getProtocolDecoder();
	
	/**
	 * A <code>AbstractUpdateHandler</code> for
	 * the game revision
	 * @return A <code>AbstractUpdateHandler</code>
	 */
	public abstract AbstractUpdateHandler getUpdateHandler();
	
}